class PerfilesController < ApplicationController
  #MODULE: Configuraciones
  # GET /perfiles
  # GET /perfiles.xml
  before_filter :set_modulos, :only=>[:show,:new,:edit]
  def index
  end

  # GET /perfiles/1
  # GET /perfiles/1.xml
  def show
    @perfil = Perfil.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @perfil }
    end
  end

  # GET /perfiles/new
  # GET /perfiles/new.xml
  def new
    @perfil = Perfil.new
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @perfil }
    end
  end

  # GET /perfiles/1/edit
  def edit
    @perfil = Perfil.find(params[:id])
  end

  # POST /perfiles
  # POST /perfiles.xml
  def create
    @perfil = Perfil.new(params[:perfil])

    respond_to do |format|
      if @perfil.save
        Perfil.grant_permiso(@perfil)
        flash[:notice] =  'Perfil creado correctamente.'
        format.html { redirect_to(@perfil) }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @perfil.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /perfiles/1
  # PUT /perfiles/1.xml
  def update
    params[:perfil][:accion_ids] ||= []
    params[:perfil][:modulo_ids] ||= []
    @perfil = Perfil.find(params[:id])
    respond_to do |format|
      if @perfil.update_attributes(params[:perfil])
        Perfil.grant_permiso(@perfil)
        flash[:notice] = 'Perfil actualizado correctamente.'
        format.html { redirect_to(@perfil) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @perfil.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /perfiles/1
  # DELETE /perfiles/1.xml
  def destroy
    @perfil = Perfil.find(params[:id])
    @perfil.destroy

    respond_to do |format|
      format.html { redirect_to(perfiles_url) }
      format.xml  { head :ok }
    end
  end

  def datos #IGNORE
    #Parametros
    registros, count = find_by_params(params, :class => Perfil)

    # Construct a hash from the ActiveRecord result
    return_data = Hash.new()
    return_data[:page] = params[:page]
    return_data[:total] = (count.to_f / params[:rows].to_i).ceil
    return_data[:records] = count

    return_data[:rows] = registros.collect{|u| {:id=>u.id,
        :cell=>[
          u.nombre,u.descripcion
        ]}}

    # Convert the hash to a json object
    render :text=>return_data.to_json, :layout=>false
  end

  private
  def set_modulos
    @modulos=Modulo.find(:all,:conditions=>{:modulo_id=>nil})
  end
end
